Matrix Display

At my school we needed surtitle displays for the upcoming production of Carmina Burana. The commercially available options where either too small or too expensive, so... I made my own.

Our screen needed to meet some requirements. First off it needed to be readable. This meant it needed to be quite big, especially when considering our next criteria: It needed to fit the Carmina Burana script, which having sentences with 40 characters meant the screen needed to be quite long too.

We started off by choosing a way to control the display. At the beginning we considered using simple shift registers, but we ended up just using an 8x8 led controller, namely the MAX7219. Using a shift register would be much more taxing, as the multiplexing would need to be done by the Arduino itself. This was specially a problem as we planned to add wireless communication and an sd card. I won't go into the details of multiplexing, but if your curious you can watchthis video.

After having selected which LED's we where going to use, we made a prototype. We had multiple wood boards laser cut to different spacings, we ended up going with the largest.

This ended up being a HUGE amount of work. We only did a 8x6 grid as most of our characters fitted inside that. Having built this proved our concept, it also allowed us to calculate the full length of the display. I also wrote some code,with a simple library, that allowed it to cycle some text. Later I ended up using the Parola library, it has way less documentation and was a lot of work to get working, but works way better.It can be found here.

After this I started designing PCB's. They had to include the Arduino, the MAX7219, the LED's of course, and last but not least a way to split the display up in sections. We weren't sure if the signal would reach the last display, as now we knew the led spacing, we knew the total display length would be around 6 meters.

This is why I included solder pads to select the inputs for the panel. It allows me to choose if the data connections going to the MAX7219 come from the previous display, or the Arduino on the current display. To allow the displays to work together I also added an extra data connection between panels. You can choose the protocol between a software serial and I2C with more solder pads.

After having designed them we, of course, made the panels. This still was a lot of soldering work, but way less than the first prototype.

It all ended up working nicely, displays can easily be chained together and they are very easily readable. I also started work on a wireless control. Although I put an SD card reader on the main PCB I actually ended up putting it on the remote. It made sending commands much easier. I used a modified version of myTimeStep project.

This project is not finished and due to the whole corona situation it probably won't be needed any time soon. All the code I have written for the displays isavailable on Github, with the master branch being the test code using the old library and the Parola branch being the new but unfinished code with the Parola Library. On the github page you can also findall the files used in the second prototype,including gerber files.